﻿
namespace SwtorCalculator {
    using System;

    /// <summary>
    /// class.pc.jedi_knight / .sith_warrior - str_gives_force
    ///     class.pc.advanced.guardian / .advanced.sentinel / .advanced.juggernaut / .advanced.marauder - str_gives_force
    /// </summary>
    internal class KnightWarriorStats : Stats {
        /// <summary>
        /// Initializes a New Instance of the KnightWarriorStat Class
        /// </summary>
        internal KnightWarriorStats() : this( 50 ) { }

        /// <summary>
        /// Initializes a New Instance of the KnightWarriorStat Class
        /// </summary>
        /// <param name="lvl">Character Level</param>
        /// <param name="dw">Can Character Dual Weild</param>
        internal KnightWarriorStats( int lvl ) {
            Level = lvl;
            ArmorStat = 0;
        }

        /// <summary>
        /// Players base Strength
        /// (Primary Stat)
        /// </summary>
        internal override int StrengthBase {
            get { return getPrimaryStat(); }
        }

        /// <summary>
        /// Players base Willpower
        /// (Weak Stat)
        /// </summary>
        internal override int WillpowerBase {
            get { return getWeakStat(); }
        }

        /// <summary>
        /// Characters Bonus Force Damage
        /// </summary>
        internal override int ForceBonusStats {
            get { return ( int )Math.Floor( ( double )( WillpowerTotal + StrengthTotal ) * BONUS_DMG_MOD ); }
        }

        /// <summary>
        /// Characters Force Crit from Stats
        /// </summary>
        internal override double ForceCritStats {
            get { return Math.Round( (double)( WillpowerTotal + StrengthTotal ) / BONUS_CRIT_MOD / 10000, 4 ); }
        }
    }
}
